<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 1、使用形式
        // let num = 10;
        // console.log(num);

        // 2、let与var的区别一  预解析
        // console.log(num);
        // var num = 20;
        // // Cannot access 'num2' before initialization 表示不能在初始化之前使用num2变量 就是因为没有预解析 不能进行变量提升
        // console.log(num2)
        // let num2 = 20;

        // 3、let与var的区别二  let关键字不会将变量加入到当前作用域下的对象作为属性记录
        var age = 20;
        console.log(age)
        let height = 170;
        console.log(window);
        console.log(height)

        // 4、 let 与var区别三  块级作用域
        // {
        //     var n = 1;
        // }
        // console.log(n);
        // // 在一个块级作用域下创建n2变量  当使用let 或者const关键字时 函数、循环 都是有{} 语法  在{}中let创建的变量 出去就无法访问
        // {
        //     let n2 = 20;
        //     console.log(n2);
        // }
        // console.log(n2);
        // let与var区别四：不能重复声明
        var num = 20;
        var num = 30;
        let n = 20;
        // Identifier 'n' has already been declared
        // let n = 30;
    </script>
</body>
</html>